package com.apartment.own.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.apartment.common.annotation.Excel;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.apartment.common.core.domain.BaseEntity;

/**
 * 租客合同对象 own_ord_tenant_contract
 *
 * @author @Dog_E
 * @date 2020-08-31
 */
@Data
@ApiModel("租客合同")
public class OwnOrdTenantContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    @ApiModelProperty("ID")
    private String id;

    /** 删除标志（0代表存在 1代表删除） */
    @ApiModelProperty("删除标志（0代表存在 1代表删除）")
    private String delFlag;

    /** 手机号区号字典 */
    @ApiModelProperty("手机号区号字典")
    @Excel(name = "手机号区号字典")
    private Integer areaCode;

    /** 手机号 */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String tel;

    /** 资质类型 */
    @ApiModelProperty("资质类型")
    @Excel(name = "资质类型")
    private Integer certificationType;

    /** 姓名 */
    @ApiModelProperty("姓名")
    @Excel(name = "姓名")
    private String name;

    /** 身份类型 */
    @ApiModelProperty("身份类型")
    @Excel(name = "身份类型")
    private Integer idType;

    /** 身份证件号 */
    @ApiModelProperty("身份证件号")
    @Excel(name = "身份证件号")
    private String idNumber;

    /** 性别0:男 1:女 */
    @ApiModelProperty("性别0:男 1:女")
    @Excel(name = "性别0:男 1:女")
    private String sex;

    /** 国籍 */
    @ApiModelProperty("国籍")
    @Excel(name = "国籍")
    private Integer nationality;

    /** 星座类型 */
    @ApiModelProperty("星座类型")
    @Excel(name = "星座类型")
    private Integer constellationType;

    /** 出生日期 */
    @ApiModelProperty("出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dateOfBirth;

    /** 职业类型 */
    @ApiModelProperty("职业类型")
    @Excel(name = "职业类型")
    private Integer vocationalType;

    /** 单位名称 */
    @ApiModelProperty("单位名称")
    @Excel(name = "单位名称")
    private String companyName;

    /** 兴趣爱好 */
    @ApiModelProperty("兴趣爱好")
    @Excel(name = "兴趣爱好")
    private String hobby;

    /** 其他信息 */
    @ApiModelProperty("其他信息")
    @Excel(name = "其他信息")
    private String otherInformation;

    /** 户籍住址 */
    @ApiModelProperty("户籍住址")
    @Excel(name = "户籍住址")
    private String domicileAddress;

    /** 紧急联系人类型 */
    @ApiModelProperty("紧急联系人类型")
    @Excel(name = "紧急联系人类型")
    private Integer emergencyContactType;

    /** 紧急联系人姓名 */
    @ApiModelProperty("紧急联系人姓名")
    @Excel(name = "紧急联系人姓名")
    private String emergencyContactName;

    /** 紧急联系人手机号 */
    @ApiModelProperty("紧急联系人手机号")
    @Excel(name = "紧急联系人手机号")
    private String emergencyContactTel;

    /** 签约方式 0新签电子合同 1:已签纸质合同 */
    @ApiModelProperty("签约方式 0新签电子合同 1:已签纸质合同")
    @Excel(name = "签约方式 0新签电子合同 1:已签纸质合同")
    private Integer signingMethod;

    /** 短信通知租客完成合同绑定 （0代表存在 1代表删除） */
    @ApiModelProperty("短信通知租客完成合同绑定 （0代表存在 1代表删除）")
    @Excel(name = "短信通知租客完成合同绑定 ", readConverterExp = "0=代表存在,1=代表删除")
    private String msgNotice;

    /** 房间id  整租对应*/
    @ApiModelProperty("房源ID")
    @Excel(name = "房源ID")
    private String houseId;

    /** 房源类型 */
    @ApiModelProperty("房源类型")
    @Excel(name = "房源类型")
    private Integer housingType;

    /** 选择房源(小区名,门牌号) */
    @ApiModelProperty("选择房源(小区名,门牌号)")
    @Excel(name = "选择房源(小区名,门牌号)")
    private String listingsName;

    /** 起租时间 */
    @ApiModelProperty("起租时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "起租时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startLeaseTime;

    /** 退租时间 */
    @ApiModelProperty("退租时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退租时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date surrenderLeaseTime;

    /** 租期类型(1:月租) */
    @ApiModelProperty("租期类型(1:月租)")
    @Excel(name = "租期类型(1:月租)")
    private Integer leaseTermType;

    /** 支付期限类型(0:一次性  1:付1  2:付2) */
    @ApiModelProperty("支付期限类型(0:一次性  1:付1  2:付2)")
    @Excel(name = "支付期限类型(0:一次性  1:付1  2:付2)")
    private Integer paymentDeadlineType;

    /** 押金类型(-1:自定义 0:无押金 1:押一 2:押二 3:押三) */
    @ApiModelProperty("押金类型(-1:自定义 0:无押金 1:押一 2:押二 3:押三)")
    @Excel(name = "押金类型(-1:自定义 0:无押金 1:押一 2:押二 3:押三)")
    private Integer cashPledgeType;

    /** 月租金 */
    @ApiModelProperty("月租金")
    @Excel(name = "月租金")
    private Long monthlyRent;

    /** 押金 */
    @ApiModelProperty("押金")
    @Excel(name = "押金")
    private Long deposit;

    /** 零散租期(0:不设置 1:零散期前置 2:零散期后置) */
    @ApiModelProperty("零散租期(0:不设置 1:零散期前置 2:零散期后置)")
    @Excel(name = "零散租期(0:不设置 1:零散期前置 2:零散期后置)")
    private Integer scatteredLease;

    /** 零散租期起始时间 */
    @ApiModelProperty("零散租期起始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "零散租期起始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scatteredStartTime;

    /** 零散租期结束时间 */
    @ApiModelProperty("零散租期结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "零散租期结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scatteredSurrenderTime;

    /** 零散租期金额 */
    @ApiModelProperty("零散租期金额")
    @Excel(name = "零散租期金额")
    private BigDecimal scatteredLeaseMoney;

    /** 零散租期支付类型(1:分开支付 2:合并支付) */
    @ApiModelProperty("零散租期支付类型(1:分开支付 2:合并支付)")
    @Excel(name = "零散租期支付类型(1:分开支付 2:合并支付)")
    private Integer scatteredPaymentType;

    /** 租金/付款方式分阶 0:无 1:按灵活租期自定义 */
    @ApiModelProperty("租金/付款方式分阶 0:无 1:按灵活租期自定义")
    @Excel(name = "租金/付款方式分阶 0:无 1:按灵活租期自定义")
    private Integer paymentMethodHierarchical;

    /** 免租期前置 0:未选中 1:选中 */
    @ApiModelProperty("免租期前置 0:未选中 1:选中")
    @Excel(name = "免租期前置 0:未选中 1:选中")
    private Integer frontRentFreePeriod;

    /** 多种付款方式 0:未选中 1:选中 */
    @ApiModelProperty("多种付款方式 0:未选中 1:选中")
    @Excel(name = "多种付款方式 0:未选中 1:选中")
    private Integer manyPayType;

    /** 支付时间方式 0:账单开始前提前 1:账单开始后固定 2:账单开始前固定 3:账单开始前1一个月固定 */
    @ApiModelProperty("支付时间方式 0:账单开始前提前 1:账单开始后固定 2:账单开始前固定 3:账单开始前1一个月固定")
    @Excel(name = "支付时间方式 0:账单开始前提前 1:账单开始后固定 2:账单开始前固定 3:账单开始前1一个月固定")
    private Integer paymentTimeMethod;

    /** 支付时间类型  */
    @ApiModelProperty("支付时间类型 ")
    @Excel(name = "支付时间类型 ")
    private Integer paymentTimeType;

    /** 签约类型 0:新签 1:续租 2:转租 3:换房  */
    @ApiModelProperty("签约类型 0:新签 1:续租 2:转租 3:换房 ")
    @Excel(name = "签约类型 0:新签 1:续租 2:转租 3:换房 ")
    private Integer contractType;

    /** 签约人id  */
    @ApiModelProperty("签约人id ")
    @Excel(name = "签约人id ")
    private Long signatoryId;

    /** 签约人名字  */
    @ApiModelProperty("签约人名字 ")
    @Excel(name = "签约人名字 ")
    private String signatoryName;

    /** 签约时间  */
    @ApiModelProperty("签约时间 ")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签约时间 ", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signatoryTime;

    /** 租客来源类型  */
    @ApiModelProperty("租客来源类型 ")
    @Excel(name = "租客来源类型 ")
    private Integer tenantSource;

    /** 合同编号  */
    @ApiModelProperty("合同编号 ")
    @Excel(name = "合同编号 ")
    private String contractNo;

    /** 合同扫描件图片 */
    @ApiModelProperty("合同扫描件图片")
    @Excel(name = "合同扫描件图片")
    private String scannedCopyOfContract;

    /** 承租人证件图片  */
    @ApiModelProperty("承租人证件图片 ")
    @Excel(name = "承租人证件图片 ")
    private String tenantsCertificate;

    /** 租金包含费用  */
    @ApiModelProperty("租金包含费用 ")
    @Excel(name = "租金包含费用 ")
    private String rentIncludes;

    /** 补充条款 */
    @ApiModelProperty("补充条款")
    @Excel(name = "补充条款")
    private String additionalTerms;

    /** 合同状态 */
    @ApiModelProperty("合同状态")
    @Excel(name = "合同状态")
    private String contractStates;


    /** 审批状态 */
    @ApiModelProperty("审批状态")
    @Excel(name = "审批状态")
    private String approvalStatus;


}
